package com.springboot.jdk.nio;

import java.nio.ByteBuffer;

/**
 * Buffer Demo案例实战
 *
 * @author: zr
 * @date: 2021-10-19
 */
public class BufferPutDemo {

    public static void main(String[] args) {

        byte[] bytes = new byte[]{55, 56, 57, 58, 59};

        // 将java虚拟机内存里面的数据封装到Buffer 缓冲区里面去
        ByteBuffer wrap = ByteBuffer.allocateDirect(100);

        System.out.println("position:" + wrap.position());
        System.out.println("capacity:" + wrap.capacity());
        System.out.println("limit:" + wrap.limit());

        wrap.put(bytes);
        // bytes 的数组长度是5，因此0~4都填充了数据，postition的位置移动到了postition = 5的位置
        System.out.println("position:" + wrap.position());

        // 此时，如果直接读数据，是读取不到的，是没有数据的
        wrap.position(0);
        byte[] dst = new byte[5];
        wrap.get(dst);
        System.out.println("position:" + wrap.position());

        for (int i = 0; i < dst.length; i++) {
            System.out.println(dst[i]);
        }
    }
}
